import { Navigate } from "react-router-dom";
import type { JSX } from "react";

export default function PrivateRoute({ children }: { children: JSX.Element }): JSX.Element {
    console.log("PrivateRoute");

    // 从 localStorage 获取认证 token
    // 这是判断用户是否登录的依据
    const token = localStorage.getItem("token");

    // 检查 token 是否存在
    // 如果不存在，说明用户未登录
    if (!token) {
        // 重定向到 404 页面
        // 使用 replace 模式，避免用户可以通过浏览器后退按钮访问受保护的路由
        return <Navigate to={"/404"} replace state={{ from: "/" }} />;
    }

    // 如果 token 存在，说明用户已登录
    // 渲染被保护的子组件
    return children;
}
